Fusing game control inputs

ABSTRACT

A method for fusing game control inputs includes, on a computing device, receiving a first game control input from a first input device having a first housing and receiving a second game control input from a second input device having a second housing. The first game and second game control inputs are fused into a fused game control input mimicking a game control input from a single input device having a single housing. The fused game control input is provided to a video game application.

BACKGROUND

A variety of different types of input devices can be used to providegame control inputs to a computing device running a video gameapplication. Such input devices can include dedicated video gamecontrollers, as well as computer mice and keyboards, standalonejoysticks or wheels, replica instruments, etc. A game control input froman input device will often indicate the status of various controlmechanisms of the input device, such as whether buttons or triggers aredepressed, whether any control sticks have been moved away from theirneutral position, the state of any internal sensors, etc. Once receivedby the computing device, game control inputs can be used to controloperation of the computing device, and/or provided to a running videogame application, thereby controlling the game.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

A method for fusing game control inputs includes, on a computing device,receiving a first game control input from a first input device having afirst housing and receiving a second game control input from a secondinput device having a second housing. The first game and second gamecontrol inputs are fused into a fused game control input mimicking agame control input from a single input device having a single housing.The fused game control input is provided to a video game application.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically shows an example computing device receiving gamecontrol inputs from two example input devices.

FIG. 2 illustrates an example method for fusing game control inputs.

FIGS. 3A-3C schematically show multiple example input devices.

FIGS. 4A-4C schematically show manipulation of various controlmechanisms of two example input devices.

FIG. 5 schematically shows fusing of two game control inputs received bya computing device into a fused game control input.

FIG. 6 schematically shows an example computing device.

DETAILED DESCRIPTION

As indicated above, various input devices can be used to control a videogame application. As control mechanisms (e.g., buttons, control sticks,triggers) of an input device are manipulated, the input device sendsgame control inputs to a computing device running the video gameapplication. However, input devices frequently used for this purpose,such as dedicated video game controllers and computer mouse/keyboardsetups, typically require some degree of expertise and manual dexterityto be used effectively. This can make it difficult for some people toplay and enjoy video games, such as people with missing or disabledfingers/hands, people with various neurological/movement disorders,young children who lack the motor skills necessary to use a video gamecontroller, or even ordinary adults who are not familiar with aparticular controller layout or are inexperienced with video games ingeneral. For example, an individual with a missing hand would find itdifficult to play a game using a video game controller intended to begripped with two hands.

Accordingly, the present disclosure is directed to a technique forfusing game control inputs received from two or more input devices intoa single fused game control input, which can then be provided to a videogame application as if it had originated from a single input device.This would allow, for example, an individual with a missing hand tomanipulate one input device using their remaining hand, whilemanipulating a second input device using their foot, or another part oftheir body. Similarly, a parent and child could each hold their owninput device while cooperating to control the same in-game avatar. Inthis manner, a young child who would not ordinarily have the dexterityand/or mental capacity to play a video game can participate in theexperience, while their parent operates the controls that the child isunable to use.

Though the present disclosure generally focuses on fusing game controlinputs and providing such inputs to a video game application, it will beunderstood that these techniques can generally be used to fuse anysuitable control inputs received by a computing device. Such controlinputs may be received from any suitable input device, fused accordingto the techniques described herein, and provided to any suitableoperating system, service, and/or application running on a computingdevice.

FIG. 1 schematically shows an example environment 100 in which multiplegame control inputs are fused to control a video game application.Environment 100 includes a computing device 102 communicatively coupledwith a display 104. Computing device 102 is running a video gameapplication and presenting visual content 106 associated with the videogame application on display 104. In this example, the computing deviceis a video game console. However, it will be understood that other typesof computing devices may additionally or alternatively be used, such asdesktop computers, laptop computers, tablets, smartphones, mediacenters, wearable devices, augmented/virtual reality devices, and/or anyother computer devices capable of receiving game control inputs from twoor more input devices. As an example, computing device 102 may beimplemented as computing system 600 described below with respect to FIG.6.

Computing device 102 is in communication with two different inputdevices, including a first input device 108 having a first housing 110and a second input device 112 having a second housing 114. As will bedescribed in more detail below, input devices 108 and 112 are providedfor the sake of example, and game control inputs received from anysuitable type of input device may be fused. In some implementations,each input device may have a separate input device ID that is providedto the computing device as part of the game control input. Accordingly,each of first input device 108 and second input device 112 may have itsown controller ID that is provided to computing device 102 so as toenable the computing device to distinguish between game control inputsprovided by the two input devices.

Each of the two input devices are providing game control inputs to thecomputing device. Specifically, computing device 102 receives a firstgame control input 116 from the first input device 108 and a second gamecontrol input 118 from the second input device 112. Each input devicemay be communicatively linked with the computing device in any suitablefashion. For example, one or both of input device 108 and input device112 may be coupled with the computing device via a wired connection,and/or either or both of the input devices may communicate with thecomputing device wirelessly via a suitable wireless protocol.

As will be described in more detail below, an input device may includeone or more control mechanisms that may be manipulated to control thevideo game application. Accordingly, each game control input sent froman input device to computing device 102 may specify the current statusof one or more of the control mechanisms. For example, a game controlinput may include an identifier of the input device from which it isoriginating, as well as indicate that a button or key having aparticular identifier is depressed, a control stick having a particularidentifier has been moved away from its neutral position, a triggermechanism having a particular identifier has been depressed a certainamount, the input device has been tilted to have a particularorientation, etc. In some implementations, each game control input sentby an input device may include information regarding every controlmechanism in the input device. In other implementations, each gamecontrol input may only include information for a subset of the controlmechanisms, such as those mechanisms that currently have non-defaultstates/values.

In some implementations, an input device may send game control inputs toa computing device as a continuous stream, each individual game controlinput indicating the status of one or more control mechanisms at aparticular moment in time. In other implementations, game control inputsmay be sent as control mechanisms are manipulated. In other words, aninput device may only send a game control input after a button/triggermechanism is depressed, a control stick is moved away from its neutralposition, etc. In general, an input device may send game control inputsto a computing device with any suitable frequency.

Once received by the computing device, a game control input may be usedto control operation of the computing device, and/or provided to a videogame application. As an example, depression of a button on an inputdevice may cause a change in operation of the computing device bychanging a setting, launching an application, turning off the device,etc. Additionally, or alternatively, a game control input may beprovided to a video game application, which will then interpret the gamecontrol input according to programming of the video game application.For example, a game control input that indicates movement of a controlstick away from its neutral position may cause a video game applicationto move a player's in-game avatar, while depression of a button maycause the in-game avatar to perform a specific action. It will beunderstood that these examples are non-limiting, and computingdevices/video game applications may interpret game control inputs in anysuitable manner.

Computing devices used to run video game applications are often capableof supporting multiple input devices simultaneously. For example, in“multiplayer” game scenarios, a single computing device running a singlevideo game application may receive multiple simultaneous streams of gamecontrol inputs, each different stream corresponding to different inputdevices used by different players. In such scenarios, each of thedifferent streams are provided directly to the video game application,where they are often used to control gameplay for different players.Because computing devices typically interpret inputs from differentcontrollers as corresponding to different players, typical computingdevices do not allow multiple input devices to cooperatively mimic asingle input device. This can inhibit or prevent a variety of potentialplayers who have difficulty using typical input devices from playing orenjoying video games. For example, as described above, people withmovement disorders, missing appendages, young children, etc., may havedifficulty using typical input devices.

Accordingly, FIG. 2 illustrates an example method 200 for fusing gamecontrol inputs received from two separate input devices into a singlefused game control input. The fused game control input mimics a gamecontrol input received from a single input device having a singlehousing and/or controller ID, such that the fused game control input maybe provided to a video game application as if it had been received froma single input device. In this manner, multiple input devices can beused together to control a video game application without requiring thatthe video game application be specifically configured to fusesimultaneous game control inputs from multiple input devices. In otherwords, multiple input devices can be used together to control virtuallyany video game application, although from the perspective of the videogame application, each fused game control input appears to originatefrom a single input device.

Before game control inputs from two input devices are fused, gamecontrol input fusing may first be enabled by “pairing” two input devicestogether via a user interface provided by the computing device. This maybe done in a variety of suitable ways. Any suitable input devices may bepaired together, even if the input devices are not the same type (e.g.,a video game controller may be paired with a computer keyboard, or othertype of input device). In some implementations, once paired, each of thefirst and second input devices may be associated with the same userprofile of a user of the computing device. Accordingly, game controlinputs received from the two paired input devices may be automaticallyfused and attributed to the user.

At 202, method 200 includes receiving a first game control input from afirst input device having a first housing and/or controller ID. At 204,method 200 includes receiving a second game control input from a secondinput device having a second housing or controller ID. As will bedescribed in more detail below, each of the first and second gamecontrol inputs may correspond to different in-game controls, or the samein-game control. Further, each of the first and second game controlinputs may correspond to the same or different control mechanisms ofeach of the two input devices. For example, both input devices may bethe same type of video game controller and accordingly have the samelayout of control mechanisms, and the game control inputs may indicatethat the same button is depressed on each controller. The first andsecond game control inputs may be received sequentially—i.e., one beforethe other—or the first and second game control inputs may be receivedsubstantially at the same time. Further, though the present disclosurefocuses on fusing two game control inputs from two input devices, gamecontrol inputs from more input devices can also be fused. For example,method 200 may include receiving a third game control input from a thirdinput device having a third housing, and fusing the first, second, andthird game control inputs into the fused game control input.

In some cases, one or both of the first and second input devices may bea video game controller. For example, as described above with respect toFIG. 1, computing device 102 receives first game control input 116 fromfirst input device 108 having first housing 110, and second game controlinput 118 from second input device 112 having second housing 114, whereeach of first input device 108 and second input device 112 are videogame controllers.

Turning briefly to FIG. 3A, a more detailed view of input device 108 isshown. Input device 108 includes several control mechanisms that may bemanipulated to control a video game application. Specifically, inputdevice 108 includes a button 302, a control stick 304, and a triggermechanism 306. When sending a game control input to a computing device,input device 108 may report the status of button 302 as one of twobinary states (i.e., depressed or not-depressed). In contrast, triggermechanism 306 may be an analog mechanism, such that the input devicereports a depression value indicating the extent to which the triggermechanism is depressed. In some cases, such a depression value may takethe form of a percentage—e.g., a depression value of 0% may indicatethat the trigger mechanism is not depressed at all, while a depressionvalue of 100% may indicate that the trigger mechanism is fullydepressed. Control stick 304 may take the form of a stick extending awayfrom the input device that is moveable in one or more directions, thoughoccupies a neutral position when no external forces are applied to it.Accordingly, the input device may report the current position of thecontrol stick relative to its neutral position (e.g., direction andmagnitude).

Though this description primarily focuses on input devices taking theform of traditional video game controllers, it will be understood thatcomputing devices may receive and fuse game control inputs from othertypes of input devices. In some implementations, either or both of thefirst and second input devices may take the form of a computer keyboard,such as input device 310, which is shown in FIG. 3B. Input device 310includes a plurality of individual keys 312, each of which may have adifferent identity/function. Accordingly, a game control input sent byinput device 310 may indicate which, if any, of keys 312 are depressed,and this information may be interpreted by a computing device/video gameapplication. In some settings, a computer keyboard such as input device310 may control a video game application in conjunction with anotherinput device, such as a computer mouse.

In other implementations, either or both of the first and second inputdevices may take the form of a joystick, such as input device 320, whichis schematically shown in FIG. 3C. As shown, input device 320 includes acontrol stick 322 and a button 324, the status of each of which may bereported by input device 320 as part of a game control input.

It will be understood that each of input devices 108, 310, and 320 arepresented as examples, and computing devices may additionally oralternatively support other types of input devices having any of avariety of form factors. Further, input devices may have any suitablenumber and variety of control mechanisms. Such control mechanisms mayinclude various mechanisms not described herein. Further, an inputdevice used to control a video game application need not include thecontrol mechanisms described above (i.e., buttons, control sticks, andtriggers). Further, input devices may include control mechanisms similarto those described above that behave in different ways (e.g., buttonswith multiple depression states, control sticks with differing ranges ofmotion, or trigger mechanisms having different properties).

Once again focusing on input devices 108 and 112, FIGS. 4A-4Cschematically illustrate how various control mechanisms of the inputdevices may be manipulated to control a video game application.Specifically, FIG. 4A once again shows first input device 108, includingbutton 302 in a non-depressed state. Accordingly, a game control inputsent from input device 108 to a computing device (e.g., computing device102) may indicate a depression state of button 302, the depression stateindicating that button 302 is not depressed. FIG. 4A also shows secondinput device 112 having a second button 400, where second button 400 hasa depressed state, as indicated by the gray color and arrow pointing tobutton 400. Accordingly, a game control input sent from second inputdevice 112 may indicate a depression state of second button 400, thedepression state indicating that second button 400 is depressed. In someimplementations, each of first button 302 and second button 400 maycorrespond to a same in-game control (e.g., performing an action,selecting an option, using an ability).

FIG. 4B shows portions of each of first input device 108 and secondinput device 112. As shown, control stick 304 of first input device 108has been moved away from its neutral position 402. The direction andmagnitude of this movement is given by displacement vector 404.Accordingly, a game control input sent by first input device 108 mayindicate, in some form, the displacement of control stick 304 away fromits neutral position 402. Similar to first input device 108, secondinput device 112 includes a second control stick 406. As with controlstick 402, second control stick 406 typically occupies a neutralposition 408 when no external forces are applied to the control stick,though is currently occupying a position other than its neutralposition. The displacement between the current position and neutralposition of control stick 406 is given by displacement vector 410,indicating the direction and magnitude of the displacement. Accordingly,a game control input sent by second input device 112 may indicate, insome form, the displacement of control stick 406 away from its neutralposition 408. In some implementations, each of control stick 304 andcontrol stick 406 may correspond to the same in-game control (e.g.,navigating a menu or moving a player's in-game avatar).

FIG. 4C shows side views of first input device 108 and second inputdevice 112. As shown, trigger mechanism 306 of first input device 108 isin a non-depressed state. Accordingly, a game control input sent byfirst input device 108 may indicate a depression value for triggermechanism 306, the depression value indicating that trigger mechanism306 is not depressed (e.g., a depression value of 0%). In contrast,second input device 112 includes a second trigger mechanism 412 in asemi-depressed state. Accordingly, a game control input sent by secondinput device 112 may indicate a depression value for second triggermechanism 412, the depression value indicating the extent to whichsecond trigger mechanism 412 is depressed (e.g., a depression value of80%). In some implementations, each of first trigger mechanism 306 andsecond trigger mechanism 412 may correspond to the same in-game control(e.g., firing a weapon or applying an accelerator).

Returning briefly to FIG. 2, at 206, method 200 includes fusing thefirst and second game control inputs into a fused game control inputmimicking a game control input from a single input device having asingle housing and/or controller ID. This is schematically illustratedin FIG. 5, which shows computing device 102 receiving game controlinputs 116 and 118 from first input device 108 and second input device112. Each of game control inputs 116 and 118 indicate the current statusof control mechanisms of the first and second input devices.Specifically, game control input 116 indicates that button 302 of inputdevice 108 is not depressed, indicates a displacement of control stick304 away from its neutral position, and indicates a depression value oftrigger mechanism 306. Similarly, game control input 118 indicates thatbutton 400 is depressed, indicates a displacement of control stick 406away from its neutral position, and indicates a depression value oftrigger mechanism 412.

Once received by computing device 102, first game control input 116 andsecond game control input 118 are fused into a fused game control input500. Fusing of game control inputs may be done in a variety of suitableways. As a nonlimiting example, for two buttons corresponding to thesame in-game control, the fused game control input may indicate that abutton corresponding to the in-game control is depressed based on,according to the first and second game control inputs, either or both ofthe first button and the second button being depressed. Accordingly,fused game control 500 indicates that “Button A” is depressed, as button400 of second input device 112 is depressed.

As another example, for two control sticks corresponding to the samein-game control, the fused game control input may include a fuseddisplacement based on addition of each of the first and seconddisplacements. In some implementations, the two displacements may beadded as vectors, such that both the magnitude and direction of eachdisplacement is taken into account. To give an example, if one controlstick was pointed exactly “north” and had a magnitude of 100% of thecontrol stick's available movement range, and another control stick waspointed exactly “east,” also with a magnitude of 100%, then the fusedgame control input would show the control stick pointing exactly“northeast,” with a normalized magnitude of 100%. This example isillustrated in FIG. 5. As another example, if a first control stick waspointing “north” with a magnitude of 100%, and a second control stickwas pointing “south” with a magnitude of 50%, then adding the twodisplacements would give a fused game control input that shows thecontrol stick pointing “north” with a magnitude of 50%.

In some examples, adding of displacements to give a fused displacementmay be normalized or capped such that the fused displacement cannot begreater than an actual maximum displacement of a real control stick. Forexample, if two game control inputs indicated that two control stickswere each pointing “north” with a magnitude of 100%, fusing the twodisplacements may result in a fused game control input that shows thecontrol stick pointing “north” with a magnitude of 200%. Because itwould not be possible to observe this displacement with a real controlstick, the fused game control input may be capped to have a maximummagnitude of 100%. In some examples, the cap is dynamically set at thelargest magnitude of any of the individual inputs being fused.

As still another example, for two trigger mechanisms corresponding tothe same in-game control, the fused game control input may indicate afused depression value equal to a higher of the first and seconddepression values. Using the example illustrated in FIG. 5, triggermechanism 306 has a depression value of 0%, while trigger mechanism 412has a depression value of 80%. Accordingly, fused game control input 500indicates that the trigger mechanism has a depression value of 80%.

It will be understood that the above game control input fusiontechniques are provided as examples, and that fusing of two or more gamecontrol inputs into a fused game control input may be done in a varietyof ways. For example, in some implementations, a higher weighting may begiven to the first game control input than to the second game controlinput, or vice versa. Further, the specific information included in eachgame control input, including the specific formats of a buttondepression state, control stick displacement, and trigger mechanismdepression value, can vary from implementation to implementation.

Returning briefly to FIG. 2, at 208, method 200 includes providing thefused game control input to a video game application. This isschematically illustrated in FIG. 5, in which computing device 102provides fused game control input 500 to a video game application 502.Notably, from the perspective of the video game application, the fusedgame control input appears to originate from a single input devicehaving a single housing. In this manner, multiple input devices may beused to cooperatively control a video game application that is notspecifically configured to support or interpret simultaneous gamecontrol inputs. It will be understood that fused game control inputs canbe provided to other types of software on a computing device instead ofor in addition to a video game application. For example, a fused gamecontrol input may be used to alter the operation of the computingdevice, provided to a productivity application or media player, etc.

In some situations, as a computing device is receiving and fusing gamecontrol inputs from two input devices, one of the input devices maybecome disconnected from the computing device. For example, a wiredconnection between the computing device and the input device may beinterrupted, the input device may run out of power, be removed from awireless range of the computing device, etc. Accordingly, returningbriefly to FIG. 2, based on determining that either the first inputdevice or the second input device has become disconnected from thecomputing device, method 200 optionally includes, at 210, discontinuingfusing game control inputs from the first and second input devices.Should the disconnected input device be reconnected, then at 212 method200 optionally includes automatically resuming fusing of game controlinputs from the first and second input devices. In this manner, pairingof the two input devices may be automatically restored, withoutrequiring manual reestablishing of the pairing after one of the twoinput devices unexpectedly disconnects from the computing device.

In some embodiments, the methods and processes described herein may betied to a computing system of one or more computing devices. Inparticular, such methods and processes may be implemented as acomputer-application program or service, an application-programminginterface (API), a library, and/or other computer-program product.

FIG. 6 schematically shows a non-limiting embodiment of a computingsystem 600 that can enact one or more of the methods and processesdescribed above. Specifically, computing system 600 may be configured toreceive first and second game control inputs from first and second inputdevices, fuse the first and second game control inputs into a fused gamecontrol input, and provide the fused game control input to a video gameapplication. Computing system 600 is shown in simplified form. Computingsystem 600 may take the form of one or more personal computers, servercomputers, tablet computers, home-entertainment computers, networkcomputing devices, gaming devices, mobile computing devices, mobilecommunication devices (e.g., smart phone), and/or other computingdevices.

Computing system 600 includes a logic machine 602 and a storage machine604. Computing system 600 may optionally include a display subsystem606, input subsystem 608, communication subsystem 610, and/or othercomponents not shown in FIG. 6.

Logic machine 602 includes one or more physical devices configured toexecute instructions. For example, the logic machine may be configuredto execute instructions that are part of one or more applications,services, programs, routines, libraries, objects, components, datastructures, or other logical constructs. Such instructions may beimplemented to perform a task, implement a data type, transform thestate of one or more components, achieve a technical effect, orotherwise arrive at a desired result.

The logic machine may include one or more processors configured toexecute software instructions. Additionally or alternatively, the logicmachine may include one or more hardware or firmware logic machinesconfigured to execute hardware or firmware instructions. Processors ofthe logic machine may be single-core or multi-core, and the instructionsexecuted thereon may be configured for sequential, parallel, and/ordistributed processing. Individual components of the logic machineoptionally may be distributed among two or more separate devices, whichmay be remotely located and/or configured for coordinated processing.Aspects of the logic machine may be virtualized and executed by remotelyaccessible, networked computing devices configured in a cloud-computingconfiguration.

Storage machine 604 includes one or more physical devices configured tohold instructions executable by the logic machine to implement themethods and processes described herein. When such methods and processesare implemented, the state of storage machine 604 may betransformed—e.g., to hold different data.

Storage machine 604 may include removable and/or built-in devices.Storage machine 604 may include optical memory (e.g., CD, DVD, HD-DVD,Blu-Ray Disc, etc.), semiconductor memory (e.g., RAM, EPROM, EEPROM,etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive,tape drive, MRAM, etc.), among others. Storage machine 604 may includevolatile, nonvolatile, dynamic, static, read/write, read-only,random-access, sequential-access, location-addressable,file-addressable, and/or content-addressable devices.

It will be appreciated that storage machine 604 includes one or morephysical devices. However, aspects of the instructions described hereinalternatively may be propagated by a communication medium (e.g., anelectromagnetic signal, an optical signal, etc.) that is not held by aphysical device for a finite duration.

Aspects of logic machine 602 and storage machine 604 may be integratedtogether into one or more hardware-logic components. Such hardware-logiccomponents may include field-programmable gate arrays (FPGAs), program-and application-specific integrated circuits (PASIC/ASICs), program- andapplication-specific standard products (PSSP/ASSPs), system-on-a-chip(SOC), and complex programmable logic devices (CPLDs), for example.

The terms “module,” “program,” and “engine” may be used to describe anaspect of computing system 600 implemented to perform a particularfunction. In some cases, a module, program, or engine may beinstantiated via logic machine 602 executing instructions held bystorage machine 604. It will be understood that different modules,programs, and/or engines may be instantiated from the same application,service, code block, object, library, routine, API, function, etc.Likewise, the same module, program, and/or engine may be instantiated bydifferent applications, services, code blocks, objects, routines, APIs,functions, etc. The terms “module,” “program,” and “engine” mayencompass individual or groups of executable files, data files,libraries, drivers, scripts, database records, etc.

It will be appreciated that a “service”, as used herein, is anapplication program executable across multiple user sessions. A servicemay be available to one or more system components, programs, and/orother services. In some implementations, a service may run on one ormore server-computing devices.

When included, display subsystem 606 may be used to present a visualrepresentation of data held by storage machine 604. This visualrepresentation may take the form of a graphical user interface (GUI). Asthe herein described methods and processes change the data held by thestorage machine, and thus transform the state of the storage machine,the state of display subsystem 606 may likewise be transformed tovisually represent changes in the underlying data. Display subsystem 606may include one or more display devices utilizing virtually any type oftechnology. Such display devices may be combined with logic machine 602and/or storage machine 604 in a shared enclosure, or such displaydevices may be peripheral display devices.

When included, input subsystem 608 may comprise or interface with one ormore user-input devices such as a keyboard, mouse, touch screen, or gamecontroller. In some embodiments, the input subsystem may comprise orinterface with selected natural user input (NUI) componentry. Suchcomponentry may be integrated or peripheral, and the transduction and/orprocessing of input actions may be handled on- or off-board. Example NUIcomponentry may include a microphone for speech and/or voicerecognition; an infrared, color, stereoscopic, and/or depth camera formachine vision and/or gesture recognition; a head tracker, eye tracker,accelerometer, and/or gyroscope for motion detection and/or intentrecognition; as well as electric-field sensing componentry for assessingbrain activity.

When included, communication subsystem 610 may be configured tocommunicatively couple computing system 600 with one or more othercomputing devices. Communication subsystem 610 may include wired and/orwireless communication devices compatible with one or more differentcommunication protocols. As non-limiting examples, the communicationsubsystem may be configured for communication via a wireless telephonenetwork, or a wired or wireless local- or wide-area network. In someembodiments, the communication subsystem may allow computing system 600to send and/or receive messages to and/or from other devices via anetwork such as the Internet.

In an example, a method for fusing game inputs comprises: on a computingdevice, receiving a first game control input from a first input devicehaving a first housing; on the computing device, receiving a second gamecontrol input from a second input device having a second housing; on thecomputing device, fusing the first and second game control inputs into afused game control input mimicking a game control input from a singleinput device having a single housing; and on the computing device,providing the fused game control input to a video game application. Inthis example or any other example, the first and second game controlinputs correspond to different in-game controls. In this example or anyother example, the first and second game control inputs correspond to asame in-game control. In this example or any other example, the firstinput device includes a first button and the second input deviceincludes a second button, each of the first and second buttonscorresponding to the same in-game control, the first game control inputindicates a depression state of the first button and the second gamecontrol input indicates a depression state of the second button, and thefused game control input indicates that a button corresponding to thein-game control is depressed based on, according to the first and secondgame control inputs, either or both of the first button and the secondbutton being depressed. In this example or any other example, the firstinput device includes a first control stick and the second input deviceincludes a second control stick, each of the first and second controlsticks corresponding to the same in-game control, the first game controlinput indicates a first displacement of the first control stick awayfrom a neutral position of the first control stick and the second gamecontrol input indicates a second displacement of the second controlstick away from a neutral position of the second control stick, and thefused game control input indicates a fused displacement based onaddition of each of the first and second displacements. In this exampleor any other example, the first input device includes a first triggermechanism and the second input device includes a second triggermechanism, each of the first and second trigger mechanisms correspondingto the same in-game control, the first game control input indicates afirst depression value of the first trigger mechanism and the secondgame control input indicates a second depression value of the secondtrigger mechanism, and the fused game control input indicates a fuseddepression value equal to a higher of the first and second depressionvalues. In this example or any other example, one or both of the firstand second input devices is a video game controller. In this example orany other example, one or both of the first and second input devices isa computer keyboard. In this example or any other example, one or bothof the first and second input devices includes a joystick. In thisexample or any other example, each of the first input device and thesecond input device is associated with a same user profile of a user ofthe computing device. In this example or any other example, the methodfurther comprises, based on determining that either the first inputdevice or the second input device has disconnected from the computingdevice, discontinuing fusing game control inputs from the first andsecond input devices. In this example or any other example, the methodfurther comprises, based on determining that the disconnected inputdevice has reconnected to the computing device, automatically resumingfusing of game control inputs from the first and second input devices.In this example or any other example, the method further comprises, onthe computing device, receiving a third game control input from a thirdinput device having a third housing, and fusing the first, second, andthird game control inputs into the fused game control input. In thisexample or any other example, fusing the first and second game controlinputs includes giving a higher weighting to the first game controlinput than to the second game control input.

In an example, a computing device comprises: a logic machine; and astorage machine holding instructions executable by the logic machine to:receive a first control input from a first input device having a firsthousing; receive a second control input from a second input devicehaving a second housing; fuse the first and second control inputs into afused control input, the fused control input mimicking a control inputfrom a single input device having a single housing; and output the fusedcontrol input. In this example or any other example, the first andsecond control inputs correspond to a same control. In this example orany other example, the first input device includes a first button andthe second input device includes a second button, each of the first andsecond buttons corresponding to the same control, the first controlinput indicates a depression state of the first button and the secondcontrol input indicates a depression state of the second button, and thefused control input indicates that a button corresponding to the controlis depressed based on, according to the first and second control inputs,either or both of the first button and the second button beingdepressed. In this example or any other example, the first input deviceincludes a first control stick and the second input device includes asecond control stick, each of the first and second control stickscorresponding to the same control, the first control input indicates afirst displacement of the first control stick away from a neutralposition of the first control stick and the second game control inputindicates a second displacement of the second control stick away from aneutral position of the second control stick, and the fused controlinput indicates a fused displacement based on addition of each of thefirst and second displacements. In this example or any other example,the first input device includes a first trigger mechanism and the secondinput device includes a second trigger mechanism, each of the first andsecond trigger mechanisms corresponding to the same control, the firstcontrol input indicates a first depression value of the first triggermechanism and the second control input indicates a second depressionvalue of the second trigger mechanism, and the fused control inputindicates a fused depression value equal to a higher of the first andsecond depression values.

In an example, a method for fusing game control inputs comprises: on acomputing device, receiving a first game control input from a firstvideo game controller having a first controller ID; on the computingdevice, receiving a second game control input from a second video gamecontroller having a second controller ID, each of the first game controlinput and the second game control input corresponding to a same controlmechanism of the first and second video game controllers; on thecomputing device, fusing the first and second game control inputs into afused game control input, the fused game control input mimicking a gamecontrol input from the control mechanism of a single video gamecontroller having a single controller ID; and on the computing device,providing the fused game control input to a video game application.

It will be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated and/ordescribed may be performed in the sequence illustrated and/or described,in other sequences, in parallel, or omitted. Likewise, the order of theabove-described processes may be changed.

The subject matter of the present disclosure includes all novel andnon-obvious combinations and sub-combinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

1. A method for fusing game control inputs, comprising: on a computingdevice, receiving a first game control input from a first input devicehaving a first housing; on the computing device, receiving a second gamecontrol input from a second input device having a second housing; on thecomputing device, fusing the first and second game control inputs into afused game control input mimicking a game control input from a singleinput device having a single housing; and on the computing device,providing the fused game control input to a video game application. 2.The method of claim 1, where the first and second game control inputscorrespond to different in-game controls.
 3. The method of claim 1,where the first and second game control inputs correspond to a samein-game control.
 4. The method of claim 3, where the first input deviceincludes a first button and the second input device includes a secondbutton, each of the first and second buttons corresponding to the samein-game control, where the first game control input indicates adepression state of the first button and the second game control inputindicates a depression state of the second button, and where the fusedgame control input indicates that a button corresponding to the in-gamecontrol is depressed based on, according to the first and second gamecontrol inputs, either or both of the first button and the second buttonbeing depressed.
 5. The method of claim 3, where the first input deviceincludes a first control stick and the second input device includes asecond control stick, each of the first and second control stickscorresponding to the same in-game control, where the first game controlinput indicates a first displacement of the first control stick awayfrom a neutral position of the first control stick and the second gamecontrol input indicates a second displacement of the second controlstick away from a neutral position of the second control stick, andwhere the fused game control input indicates a fused displacement basedon addition of each of the first and second displacements.
 6. The methodof claim 3, where the first input device includes a first triggermechanism and the second input device includes a second triggermechanism, each of the first and second trigger mechanisms correspondingto the same in-game control, where the first game control inputindicates a first depression value of the first trigger mechanism andthe second game control input indicates a second depression value of thesecond trigger mechanism, and where the fused game control inputindicates a fused depression value equal to a higher of the first andsecond depression values.
 7. The method of claim 1, where one or both ofthe first and second input devices is a video game controller.
 8. Themethod of claim 1, where one or both of the first and second inputdevices is a computer keyboard.
 9. The method of claim 1, where one orboth of the first and second input devices includes a joystick.
 10. Themethod of claim 1, where each of the first input device and the secondinput device is associated with a same user profile of a user of thecomputing device.
 11. The method of claim 1, further comprising, basedon determining that either the first input device or the second inputdevice has disconnected from the computing device, discontinuing fusinggame control inputs from the first and second input devices.
 12. Themethod of claim 11, further comprising, based on determining that thedisconnected input device has reconnected to the computing device,automatically resuming fusing of game control inputs from the first andsecond input devices.
 13. The method of claim 1, further comprising, onthe computing device, receiving a third game control input from a thirdinput device having a third housing, and fusing the first, second, andthird game control inputs into the fused game control input.
 14. Themethod of claim 1, where fusing the first and second game control inputsincludes giving a higher weighting to the first game control input thanto the second game control input.
 15. A computing device, comprising: alogic machine; and a storage machine holding instructions executable bythe logic machine to: receive a first control input from a first inputdevice having a first housing; receive a second control input from asecond input device having a second housing; fuse the first and secondcontrol inputs into a fused control input, the fused control inputmimicking a control input from a single input device having a singlehousing; and output the fused control input.
 16. The computing device ofclaim 15, where the first and second control inputs correspond to a samecontrol.
 17. The computing device of claim 16, where the first inputdevice includes a first button and the second input device includes asecond button, each of the first and second buttons corresponding to thesame control, where the first control input indicates a depression stateof the first button and the second control input indicates a depressionstate of the second button, and where the fused control input indicatesthat a button corresponding to the control is depressed based on,according to the first and second control inputs, either or both of thefirst button and the second button being depressed.
 18. The computingdevice of claim 16, where the first input device includes a firstcontrol stick and the second input device includes a second controlstick, each of the first and second control sticks corresponding to thesame control, where the first control input indicates a firstdisplacement of the first control stick away from a neutral position ofthe first control stick and the second game control input indicates asecond displacement of the second control stick away from a neutralposition of the second control stick, and where the fused control inputindicates a fused displacement based on addition of each of the firstand second displacements.
 19. The computing device of claim 16, wherethe first input device includes a first trigger mechanism and the secondinput device includes a second trigger mechanism, each of the first andsecond trigger mechanisms corresponding to the same control, where thefirst control input indicates a first depression value of the firsttrigger mechanism and the second control input indicates a seconddepression value of the second trigger mechanism, and where the fusedcontrol input indicates a fused depression value equal to a higher ofthe first and second depression values.
 20. A method for fusing gamecontrol inputs, comprising: on a computing device, receiving a firstgame control input from a first video game controller having a firstcontroller ID; on the computing device, receiving a second game controlinput from a second video game controller having a second controller ID,each of the first game control input and the second game control inputcorresponding to a same control mechanism of the first and second videogame controllers; on the computing device, fusing the first and secondgame control inputs into a fused game control input, the fused gamecontrol input mimicking a game control input from the control mechanismof a single video game controller having a single controller ID; and onthe computing device, providing the fused game control input to a videogame application.